Selection of wireless devices and service plans

ABSTRACT

Disclosed are various embodiments for selection of wireless devices and service plans. A geographic location and a plurality of wireless preferences are obtained from a user at a client. A plurality of wireless service plans that meet the wireless preferences are offered by a plurality of wireless carriers that provide service to the geographic location are determined. A network page is generated that presents the wireless service plans in a ranked order that is based at least in part on the wireless preferences.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of, and claims priority to, U.S.Patent Application entitled “SELECTION OF WIRELESS DEVICES AND SERVICEPLANS,” filed on May 25, 2010, and assigned application Ser. No.12/787,039, now issued as U.S. Pat. No. 8,447,279 on May 21, 2013, whichis incorporated herein by reference in its entirety.

BACKGROUND

Each potential wireless customer may have certain preferences regardinga type of wireless device and a type of wireless service plan. Forexample, a customer may prefer a flip-style cellular telephone insteadof a bar-style cellular telephone. The customer may also prefer amulti-line family wireless plan with a certain set of features. However,the wireless carriers that service the area of the customer may notsupport the desired telephone model of the customer or offer serviceplans meeting the preferences of the customer.

BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the present disclosure can be better understood withreference to the following drawings. The components in the drawings arenot necessarily to scale, emphasis instead being placed upon clearlyillustrating the principles of the disclosure. Moreover, in thedrawings, like reference numerals designate corresponding partsthroughout the several views.

FIG. 1 is a drawing of a networked environment according to variousembodiments of the present disclosure.

FIGS. 2-4 are drawings of examples of user interfaces rendered by aclient in the networked environment of FIG. 1 according to variousembodiments of the present disclosure.

FIG. 5 is a flowchart illustrating one example of functionalityimplemented as portions of a wireless service selection applicationexecuted in a computing device in the networked environment of FIG. 1according to various embodiments of the present disclosure.

FIG. 6 is a schematic block diagram that provides one exampleillustration of a computing device employed in the networked environmentof FIG. 1 according to various embodiments of the present disclosure.

DETAILED DESCRIPTION

The present disclosure relates to facilitating the selection of wirelessdevices and service plans across multiple wireless carriers that provideservice in an area. Most wireless devices are compatible with a limitedsubset of wireless carriers, and wireless devices are often bundled witha contract for wireless service. Wireless service plans may have vastlydiffering feature sets and prices. Furthermore, different wirelesscarriers may provide different levels of service to an area. Thus,comparison and selection of wireless devices and service plans acrosswireless carriers is a complex issue. Various embodiments of the presentdisclosure provide a stepped interface showing a user the variousoptions for devices and service plans from multiple wireless carriersthat are available and meet specified criteria. Options for serviceplans and devices may be ranked according to popularity, customersatisfaction, and/or other criteria. In the following discussion, ageneral description of the system and its components is provided,followed by a discussion of the operation of the same.

With reference to FIG. 1, shown is a networked environment 100 accordingto various embodiments. The networked environment 100 includes one ormore computing devices 103 in data communication with one or moreclients 106 by way of a network 109. The network 109 includes, forexample, the Internet, intranets, extranets, wide area networks (WANs),local area networks (LANs), wired networks, wireless networks, cellulartelephone networks, or other suitable networks, etc., or any combinationof two or more such networks.

The computing device 103 may comprise, for example, a server computer orany other system providing computing capability. Alternatively, aplurality of computing devices 103 may be employed that are arranged,for example, in one or more server banks or computer banks or otherarrangements. For example, a plurality of computing devices 103 togethermay comprise, for example, a cloud computing resource, a grid computingresource, and/or any other distributed computing arrangement. Suchcomputing devices 103 may be located in a single installation or may bedispersed among many different geographical locations. In oneembodiment, the computing device 103 represents a virtualized computersystem executing on one or more physical computing systems. For purposesof convenience, the computing device 103 is referred to herein in thesingular. Even though the computing device 103 is referred to in thesingular, it is understood that a plurality of computing devices 103 maybe employed in the various arrangements as described above.

Various applications and/or other functionality may be executed in thecomputing device 103 according to various embodiments. Also, variousdata is stored in a data store 112 that is accessible to the computingdevice 103. The data store 112 may be representative of a plurality ofdata stores as can be appreciated. The data stored in the data store112, for example, is associated with the operation of the variousapplications and/or functional entities described below.

The components executed on the computing device 103, for example,include an electronic commerce system 115, a wireless service selectionapplication 118, and other applications, services, processes, systems,engines, or functionality not discussed in detail herein. The electroniccommerce system 115 is executed in order to facilitate the onlinepurchase of wireless devices, wireless service plans, and/or other itemsover the network 109. The electronic commerce system 115 also performsvarious backend functions associated with the online presence of amerchant in order to facilitate the online purchase of items as will bedescribed. For example, the electronic commerce system 115 generatesnetwork pages 120 such as web pages or other types of network contentthat are provided to clients 106 for the purposes of selecting items forpurchase, rental, download, lease, or other form of consumption as willbe described. In one embodiment, the electronic commerce system 115 isconfigured for a reseller of wireless services offered by a plurality ofwireless carriers.

The wireless service selection application 118, which may be part of theelectronic commerce system 115, is executed to facilitate the selectionof wireless devices and wireless plans for a user, given a specifiedgeographic location or area. To this end, the wireless service selectionapplication 118 may guide a user through the selection of a wirelessdevice and then a compatible wireless service plan. Alternatively, thewireless service selection application 118 may guide the user throughthe selection of a wireless service plan and then a compatible wirelessdevice.

The data stored in the data store 112 includes, for example, carrierplan data 121, wireless device data 124, user data 127, order data 130,page view data 133, customer experience data 136, and potentially otherdata. The carrier plan data 121 describes a feature set for each of aplurality of wireless service plans offered by a plurality of wirelesscarriers. For example, for each wireless service plan, the carrier plandata 121 may describe features including, but not limited to, a numberof weekday voice minutes per billing period, a number of night andweekend minutes per billing period, text messaging capabilitiesincluded, overage charges, whether unused minutes rollover to the nextbilling period, whether calls to designated numbers avoid airtimecharges, whether calls to other users of the wireless carrier avoidairtime charges, starting and ending times for nights and weekends, dataplan charges, additional line charges, and/or other features. Thecarrier plan data 121 may also specify geographic areas in which thewireless service plan is available.

The wireless device data 124 describes a plurality of wireless devices,including their respective feature sets and with which types of wirelessnetworks they are compatible. As a non-limiting example of feature sets,some wireless devices may have digital cameras and/or music players,while others may not. As another non-limiting example, some wirelessdevices may have keyboards, while others may have touch screens.Regarding wireless network compatibility, as non-limiting examples, onewireless device may be compatible with Global System for MobileCommunications (GSM) wireless networks, while another wireless devicemay be compatible with Code Division Multiple Access (CDMA) wirelessnetworks, while still another wireless device may compatible with bothGSM and CDMA networks.

The user data 127 includes data pertaining to users, which may include,for example, stored preferences of users, current wireless service plansof users, geographic locations of users, and/or other information. Theorder data 130 may include data relating to orders of wireless serviceplans, wireless devices, bundles of wireless service plans and wirelessdevices, and other items. The page view data 133 may include datarelating to views of network pages 120 which may be associated withvarious wireless devices and/or wireless service plans. The customerexperience data 136 may include data that relates to customer reviews,ratings, and/or preferences with respect to wireless devices, wirelesscarriers, wireless service plans, features, and/other factors.

The client 106 is representative of a plurality of client devices thatmay be coupled to the network 109. The client 106 may comprise, forexample, a processor-based system such as a computer system. Such acomputer system may be embodied in the form of a desktop computer, alaptop computer, a personal digital assistant, a cellular telephone,set-top box, music players, web pads, tablet computer systems, or otherdevices with like capability. The client 106 may include a display 139.The display 139 may comprise, for example, one or more devices such ascathode ray tubes (CRTs), liquid crystal display (LCD) screens, gasplasma-based flat panel displays, LCD projectors, or other types ofdisplay devices, etc.

The client 106 may be configured to execute various applications such asa browser 142 and/or other applications. The browser 142 may be executedin a client 106, for example, to access and render network pages 120,such as web pages, or other network content served up by the computingdevice 103 and/or other servers. A rendered network page 148 may bedisplayed on the display 139. The client 106 may be configured toexecute applications beyond browser 142 such as, for example, emailapplications, instant message applications, and/or other applications.

Next, a general description of the operation of the various componentsof the networked environment 100 is provided. To begin, a user at aclient 106 may access a network page 120 served up by the wirelessservice selection application 118 and provide initial information. Suchinitial information may include, for example, the geographic location ofthe user. Non-limiting examples of geographic locations may include apostal code, a street address, latitude and longitude coordinates, acity, a town, a state, a county, a borough, a parish, a censusdesignated area, a neighborhood, a subdivision, an unincorporatedcommunity, and other geographic locations.

The geographic location may be obtained explicitly or implicitly fromthe client 106. For example, a user may click on a graphical map, entera zip code, or perform some other action to explicitly provide thegeographic location. The geographic location may be provided implicitlyas well. Such information may include an internet protocol (IP) address,a telephone number, etc., that may be used for geolocation. Also, a usermay have previously registered with the electronic commerce system 115,so an identification of the user, for example, through cookies, securitycredentials, etc., may point to a stored geographic location in the userdata 127. Further, the client 106 may include a global positioningsystem (GPS) device or may determine a geographic location by way oftrilateration using various other mobile base stations having knownlocations.

The user may also provide various initial preferences to the wirelessservice selection application 118. For example, the user may indicatethat new service is requested, that an existing service is to bechanged, that a new wireless device is requested, and/or other actionsto be taken by the wireless service selection application 118. The usermay indicate current telephone number, current wireless carrier, currentwireless service plan/package, and/or other background information. Inone embodiment, preferences relating to a wireless device identifyattributes of wireless devices rather than a specific wireless device.

The wireless service selection application 118 then may generate one ora series of network pages 120 to guide the user through the selection ofa wireless service plan and/or wireless device. It is understood thatthe selection of a wireless service plan may occur first or that theselection of the wireless device may occur first. In other embodiments,the selection may happen concurrently. Which sequence is used may dependon configuration of the wireless service selection application 118, userpreferences, and/or other factors.

If a wireless device is to be selected first, the wireless serviceselection application 118 may obtain preferences relating to wirelessdevices from the user. The wireless service selection application 118may also determine which wireless devices are compatible with wirelesscarriers that provide service to the geographic location obtained fromthe user. To this end, the wireless service selection application 118may determine whether the geographic location is within or coextensivewith an area serviced by the wireless service plans in the carrier plandata 121. The wireless service selection application 118 may alsodetermine whether each of the wireless devices is compatible with thewireless carriers offering the wireless service plans using the wirelessdevice data 124.

The wireless devices compatible with plans at the geographic locationare then presented to the user in a network page 120. The wirelessservice selection application 118 generates the network page 120 listingthe wireless devices in a ranked order. The ranked order may be based,for example, on wireless device preferences, customer experience data136, wireless device selection data, and/or other data. The wirelessdevice selection data may be generated from the order data 130, the pageview data 133, and/or other data in order to determine a measure ofpopularity of the respective wireless device. A measure of popularitymay be, for example, a frequency of customer selection of the respectivewireless device. The network page 120 is then sent to the client 106 byway of the network 109.

After the user selects one or more of the wireless devices and providespreferences relating to wireless service, the wireless service selectionapplication 118 may then generate a network page 120 presenting thewireless service plans from one or more wireless carriers that areavailable in the area including the geographic location of the user andthat are compatible with the selected wireless device(s). The wirelessservice plans may be presented in a ranked order that is based, forexample, on the wireless service preferences, customer experience data136, wireless service plan selection data, and/or other data. Thewireless service plan selection data may be generated from the orderdata 130, the page view data 133, and/or other data in order todetermine a measure of popularity of the respective wireless serviceplan. A measure of popularity may be, for example, the frequency ofcustomer selection of the respective wireless service plan. The networkpage 120 is sent to the client 106 by way of the network 109.

A user selection of one or more of the wireless service plans may beobtained from the client 106. Accordingly, the electronic commercesystem 115 in conjunction with the wireless service selectionapplication 118 may facilitate the placing of an order for the selectedwireless service plan(s) and selected wireless device(s) through awireless reseller and/or a wireless carrier. The electronic commercesystem 115 may communicate over the network 109 with one or moreexternal computing systems to submit the order(s).

Alternatively, a user may specify one or more wireless service plansfirst. To this end, the wireless service selection application 118 mayobtain a plurality of wireless service preferences from the user andthen generate a network page 120 listing wireless service plans that areoffered by one or more wireless carriers at the geographic location ofthe user. The wireless service plans may be in a ranked order that isbased, for example, on the wireless service preferences, customerexperience data 136, wireless service plan selection data, and/or otherdata. The network page 120 is sent to the client 106. Subsequently, theuser may select one or more of the wireless service plans.

The wireless service selection application 118 then may determine whichwireless devices are compatible with the selected wireless serviceplan(s). The wireless service selection application 118 may thengenerate a network page 120 listing the wireless devices that arecompatible with the selected wireless service plan(s). The wirelessdevices may be presented in a ranked order based, for example, onwireless device preferences, customer experience data 136, wirelessdevice selection data, and/or other data. The selected wireless serviceplan(s) and/or wireless device(s) may then be submitted as an order.

Alternatively, a user may already have a wireless service plan and beseeking to purchase a new wireless device, or the user may already havea wireless device and be seeking to sign up for a new wireless serviceplan. In such cases, the user may be able to enter indications of theexisting wireless device or wireless service plan and the wirelessservice selection application 118 may be configured to provide choicesof wireless devices or wireless service plans according to theindications.

Moreover, in various embodiments, wireless service plans may bepresented to a user as a package, including a recommended wirelessdevice. Other services and features may be included within the package,such as, but not limited to, cable television service, satellitetelevision service, home phone service, Internet access, and/or otherservices and features. In one embodiment, the user may specify wirelesspreferences including preferences for wireless plans and wirelessdevices. In other words, the user may inform the wireless serviceselection application 118 of all of the wireless needs of the user.Based at least in part upon the wireless preferences, the wirelessservice selection application 118 may generate a set of packages orbundles to be presented to the user. It may be the case that not all ofthe packages meet all of the wireless needs of the user. Further, insome embodiments, some of the wireless needs of the user may beincompatible with one another or may not be met by any one package. Tothis end, the wireless service selection application 118 may assignscores to the packages relative to how well they meet the indicatedwireless needs of the user. The scores may be used in ranking thepackages for presentation to the user.

In one embodiment, a user may be asked by the wireless service selectionapplication 118 to identify any existing wireless devices, wirelessservice plans, and/or packages thereof. The wireless service selectionapplication 118 may use such information to offer wireless device,wireless service plans, and/or packages that are similar to the existingwireless devices, wireless service plans, and/or packages. To this end,the various feature sets of each could be compared and a similarityscore computed. In one embodiment, all available and compatible devices,plans, and/or packages may be shown in one or more rendered networkpages 148 in a ranked order determined by the similarity scores. Inanother embodiment, the available and compatible devices, plans, and/orpackaging having similarity scores that meet or exceed a threshold maybe shown in one or more rendered network pages 148.

In comparing various wireless service plans for similarity and/ordetermining whether a wireless service plan meets wireless servicepreferences, a feature set associated with a wireless service plan maybe normalized. As a non-limiting example, a premium wireless serviceplan may include unlimited text messaging. For purposes of comparisonwith a non-premium wireless service plan, an option of unlimited textmessaging for the non-premium wireless service plan may be included forcomparison purposes. The non-premium wireless service plan may be abetter deal when the unlimited text messaging option is included.

In various embodiments, a wireless device preference or a wirelessservice preference may be optional. In other words, in some embodiments,that a wireless service plan does not include unlimited text messagingwhen a user specified a preference for unlimited text messaging may notmean that the wireless service plan is excluded for consideration.Indeed, the meeting of numerous other ones of the preferences may makethe particular wireless service plan a good match.

The user preferences may be associated with weights in some embodiments.To this end, a user may be able to mark a preference as mandatory,completely optional, or at some degree in between. For instance, a usermay set a mandatory preference for having a wireless service plan pricedbelow a certain monthly rate, but also set a completely optionalpreference for unlimited weekends. In one embodiment, weights forcertain types of preferences may be predetermined. As a non-limitingexample, it may be the case that users who indicate a preference forunlimited data transfer are observed to never select a plan withoutunlimited data transfer. In such a case, a preference for unlimited datatransfer may be predetermined to be mandatory. Furthermore, the weightsmay be empirically determined automatically in response to user behaviorwhen the preferences are not strictly followed.

Referring next to FIG. 2, shown is a drawing of a user interface 200rendered by a browser 142 (FIG. 1) executing in a client 106 (FIG. 1) inthe networked environment 100 (FIG. 1) according to various embodimentsof the present disclosure. Specifically, the user interface 200 depictsone example of a rendered network page 148. In this example, a renderednetwork page 148 has been generated by the wireless service selectionapplication 118 (FIG. 1) to collect user preferences for wirelessdevices and service plans.

The rendered network page 148 includes an initial preference panel 203that displays several initial preferences indicated by the user. Forexample, the initial preference panel 203 shows that a user hasindicated a preference for buying new wireless devices with a wirelessservice plan and a preference for a family-type wireless service planwith two lines. The initial preference panel 203 indicates that ageographic location of “99999” has been determined from informationobtained from the user.

Various other preferences are configurable in the rendered network page148. A first phone (“Phone 1”) is indicated as being configured, but achange component 206 is provided to change to another phone, to add aphone, or perform some other action. The rendered network page 148includes phone style configuration components 209 and phone colorconfiguration components 212 as examples of wireless device preferences.Although they are shown as radio buttons, the phone style configurationcomponents 209 and the phone color configuration components 212 maycomprise other types of user interface components, such as buttons,links, sliders, checkboxes, text areas, drop-down boxes, and so on.

Additional features 215 may be configured for both the wireless deviceand the wireless service plan. Although wireless device preferences maybe displayed separately from wireless service plan preferences, they mayalso be mixed together, as is shown by the additional features 215.Although shown with checkboxes and drop-down boxes, it is understoodthat the additional features 215 may be specified in conjunction withany type of user interface component, including, for example, buttons,radio buttons, links, sliders, text areas, and so on.

A price preference indicator 218 is shown to specify a price preferencerange for the wireless service plans. Another price preference indicator218 may be included to specify a price preference range for wirelessdevices. However, it may be the case that wireless devices are ofnegligible additional cost due to their subsidization by the wirelesscarriers. Although the price preference indicator 218 is shown using aslider, it is understood that the price preference indicator 218 may useany type of user interface component, such as text areas, checkboxes,buttons, radio buttons, drop-down boxes, links, etc. A submit component221, such as, for example, a button, may be provided to send theinformation collected from the user in the user interface 200 to thewireless service selection application 118.

In one embodiment, the user interface 200 may be configured to ensurethat incompatible preferences are not selected. For example, a firstfeature 215 and a second feature 215 may be incompatible. The userinterface 200 may be configured to disable the selection of the secondfeature 215 when the first feature 215 is selected. Compatibility ofpreferences may be determined dynamically by the wireless serviceselection application 118 based on available wireless service plans andwireless devices.

Turning now to FIG. 3, shown is a drawing of another user interface 300rendered by a browser 142 (FIG. 1) executing in a client 106 (FIG. 1) inthe networked environment 100 (FIG. 1) according to various embodimentsof the present disclosure. Specifically, the user interface 300 depictsanother example of a rendered network page 148. In this example, arendered network page 148 has been generated by the wireless serviceselection application 118 (FIG. 1) to present examples of wirelessservice packages 303 to the user.

Each of the wireless service packages 303 has a title 306, wirelessdevice features 309, plan features 312, and pricing information 315. Itis understood that more or less information may be presented inconnection with each wireless service package 303. In some embodiments,a wireless device may be presented by itself for selection. In otherembodiments, a wireless service plan may be presented by itself forselection. Each of the wireless service packages 303 may also include apopularity indication 318 to show a frequency of selection of therespective wireless service package 303 by customers. The ranking of thewireless service packages 303 in the rendered network page 148 may beaccording to the respective popularity indication 318 and other factors.Each of the wireless service packages 303 may be presented with arespective selection component 321, shown as a button labeled “StartHere,” for sending a selection of the corresponding wireless servicepackage 303 to the wireless service selection application 118. Theselected wireless service package 303 may be further configured by wayof another user interface shown in FIG. 4. Although the selectioncomponents 321 are shown as buttons, other user interface components maybe used instead.

In this example, each of the wireless service packages 303 a, 303 b, and303 c is offered by a different wireless carrier. Multiple wirelessservice packages 303 may be offered for a wireless carrier in otherexamples. In such examples, the wireless service packages 303 may begrouped by wireless carrier or may not be grouped by wireless carrier.Where wireless service packages 303 are grouped by wireless carrier, thegroupings may be ordered according, for example, to customersatisfaction or popularity of the respective wireless carrier.

The user interface 300 may include a retrogression component 324 formoving backward to a previous rendered network page 148 for furtherconfiguration. For example, selecting the retrogression component 324may return the user to the user interface 200 (FIG. 2). Theretrogression component 324 is labeled as “Configure a Bit More” and isshown as a button, although other user interface components may be used.

Moving on to FIG. 4, shown is a drawing of another user interface 400rendered by a browser 142 (FIG. 1) executing in a client 106 (FIG. 1) inthe networked environment 100 (FIG. 1) according to various embodimentsof the present disclosure. Specifically, the user interface 400 depictsyet another example of a rendered network page 148. In this example, arendered network page 148 has been generated by the wireless serviceselection application 118 (FIG. 1) to allow a user to check out ormodify the features of a selected one of the wireless service packages303 (FIG. 3).

The user interface 400 includes a carrier modification component 403 formodifying the selected wireless carrier, a plan modification component406 for modifying the selected wireless service plan, and devicemodification components 409, 412 for modifying the selected wirelessdevices. The user interface 400 may also include a check out component415 for finalizing a selection of the wireless service package 303 andproceeding to an order stage. The user interface 400 may also include aretrogression component 418 for returning to a previous rendered networkpage 148 in order to select a different wireless service package 303 orfor the user to specify different needs.

Selection of any of these components may trigger another user interfaceto be rendered in the browser 142, such as another rendered network page148, a new display region in the same rendered network page 148, apop-up window, a pop-over window, etc. Although these components areshown as buttons, it is understood that the components may compriseother types of user interface components in other embodiments.

Referring next to FIG. 5, shown is a flowchart that provides one exampleof the operation of a portion of the wireless service selectionapplication 118 according to various embodiments. It is understood thatthe flowchart of FIG. 5 provides merely an example of the many differenttypes of functional arrangements that may be employed to implement theoperation of the portion of the wireless service selection application118 as described herein. As an alternative, the flowchart of FIG. 5 maybe viewed as depicting an example of steps of a method implemented inthe computing device 103 (FIG. 1) according to one or more embodiments.

Beginning with box 503, the wireless service selection application 118obtains location information from the user at a client 106 (FIG. 1). Insome embodiments, an implicit indication of a location may be obtainedrather than an explicit designation of a location. In box 504, thewireless service selection application 118 determines whether the userhas indicated information regarding an existing wireless service plan orpackage. If the user has specified an existing plan, the wirelessservice selection application 118 proceeds to box 505 and obtainswireless preferences based on the features of the existing wirelessservice plan and/or wireless device. The wireless service selectionapplication 118 then moves to box 509. If the user has not specified anexisting plan in box 504, or if new preferences are to be obtained, thewireless service selection application 118 otherwise moves to box 506.In box 506, the wireless service selection application 118 obtainswireless preferences from a user. The wireless preferences may beobtained through a user interface such as, for example, user interface200 (FIG. 2). Such wireless preferences may relate to wireless devicepreferences, wireless service plan preferences, and/or other preferencesrelating to the needs of a user regarding wireless service.

In box 509, the wireless service selection application 118 determineswireless devices that match the wireless preferences. As non-limitingexamples, a user may have indicated a preference for a wireless deviceincluding a camera, a preference for a wireless device includingmusic-playing capability, a preference for a wireless device including aQWERTY keypad, and/or other device-related preferences. In box 512, thewireless service selection application 118 determines wireless serviceplans that match the wireless preferences. As non-limiting examples, auser may have indicated a preference for a plan having a monthly chargeunder a certain amount, a preference for a plan including unlimited textmessaging, a preference for a plan including rollover minutes, and/orother plan-related preferences.

In box 515, the wireless service selection application 118 identifiescompatible packages of the wireless devices and the wireless serviceplans that match the wireless preferences. It may be the case that notall of the wireless preferences of the user can be matched by a package,for example, due to incompatibilities of devices and plans. Thus, insome embodiments, packages that best match the wireless preferences maybe identified. Such packages may be ranked by a score associated withthe quality of the match compared with the preferences of the user. Inbox 518, the wireless service selection application 118 identifiespackages of wireless devices and wireless service plans that are similarto those identified in box 515. Such packages may represent lowerquality matches in terms of the user preferences, but may provideadditional variety for the user if the user is dissatisfied with thepackages identified in box 515. In some embodiments, the wirelessservice selection application 118 may identify packages that are similarto a current wireless package of the user.

In box 521, the wireless service selection application 118 generates anetwork page 120 (FIG. 1) listing one or more of the identifiedpackages. The network page 120 facilitates selection of one or more ofthe packages and is sent to a client 106. As indicated above, thepackages may be ranked in terms of how well the packages match the needsof the user as expressed by the wireless preferences of the user.Further, the packages may also be ranked based in part on how often thepackages are selected by other users. In box 524, the wireless serviceselection application 118 receives a user selection of one or more ofthe identified packages. In some embodiments, the user may be able toconfigure or modify features associated with the package through, forexample, subsequent network pages 120. Thereafter, the wireless serviceselection application 118 ends.

With reference to FIG. 6, shown is a schematic block diagram of thecomputing device 103 according to an embodiment of the presentdisclosure. The computing device 103 includes at least one processorcircuit, for example, having a processor 603 and a memory 606, both ofwhich are coupled to a local interface 609. To this end, the computingdevice 103 may comprise, for example, at least one server computer orlike device. The local interface 609 may comprise, for example, a databus with an accompanying address/control bus or other bus structure ascan be appreciated.

Stored in the memory 606 are both data and several components that areexecutable by the processor 603. In particular, stored in the memory 606and executable by the processor 603 are the electronic commerce system115, the wireless service selection application 118, and potentiallyother applications. Also stored in the memory 606 may be a data store112 and other data. In addition, an operating system may be stored inthe memory 606 and executable by the processor 603.

It is understood that there may be other applications that are stored inthe memory 606 and are executable by the processors 603 as can beappreciated. Where any component discussed herein is implemented in theform of software, any one of a number of programming languages may beemployed such as, for example, C, C++, C#, Objective C, Java, JavaScript, Perl, PHP, Visual Basic, Python, Ruby, Delphi, Flash, or otherprogramming languages.

A number of software components are stored in the memory 606 and areexecutable by the processor 603. In this respect, the term “executable”means a program file that is in a form that can ultimately be run by theprocessor 603. Examples of executable programs may be, for example, acompiled program that can be translated into machine code in a formatthat can be loaded into a random access portion of the memory 606 andrun by the processor 603, source code that may be expressed in properformat such as object code that is capable of being loaded into a randomaccess portion of the memory 606 and executed by the processor 603, orsource code that may be interpreted by another executable program togenerate instructions in a random access portion of the memory 606 to beexecuted by the processor 603, etc. An executable program may be storedin any portion or component of the memory 606 including, for example,random access memory (RAM), read-only memory (ROM), hard drive,solid-state drive, USB flash drive, memory card, optical disc such ascompact disc (CD) or digital versatile disc (DVD), floppy disk, magnetictape, or other memory components.

The memory 606 is defined herein as including both volatile andnonvolatile memory and data storage components. Volatile components arethose that do not retain data values upon loss of power. Nonvolatilecomponents are those that retain data upon a loss of power. Thus, thememory 606 may comprise, for example, random access memory (RAM),read-only memory (ROM), hard disk drives, solid-state drives, USB flashdrives, memory cards accessed via a memory card reader, floppy disksaccessed via an associated floppy disk drive, optical discs accessed viaan optical disc drive, magnetic tapes accessed via an appropriate tapedrive, and/or other memory components, or a combination of any two ormore of these memory components. In addition, the RAM may comprise, forexample, static random access memory (SRAM), dynamic random accessmemory (DRAM), or magnetic random access memory (MRAM) and other suchdevices. The ROM may comprise, for example, a programmable read-onlymemory (PROM), an erasable programmable read-only memory (EPROM), anelectrically erasable programmable read-only memory (EEPROM), or otherlike memory device.

Also, the processor 603 may represent multiple processors 603 and thememory 606 may represent multiple memories 606 that operate in parallelprocessing circuits, respectively. In such a case, the local interface609 may be an appropriate network 109 (FIG. 1) that facilitatescommunication between any two of the multiple processors 603, betweenany processor 603 and any of the memories 606, or between any two of thememories 606, etc. The local interface 609 may comprise additionalsystems designed to coordinate this communication, including, forexample, performing load balancing. The processor 603 may be ofelectrical or of some other available construction.

Although the electronic commerce system 115, the wireless serviceselection application 118, and other various systems described hereinmay be embodied in software or code executed by general purpose hardwareas discussed above, as an alternative the same may also be embodied indedicated hardware or a combination of software/general purpose hardwareand dedicated hardware. If embodied in dedicated hardware, each can beimplemented as a circuit or state machine that employs any one of or acombination of a number of technologies. These technologies may include,but are not limited to, discrete logic circuits having logic gates forimplementing various logic functions upon an application of one or moredata signals, application specific integrated circuits havingappropriate logic gates, or other components, etc. Such technologies aregenerally well known by those skilled in the art and, consequently, arenot described in detail herein.

The flowchart of FIG. 5 shows the functionality and operation of animplementation of portions of the wireless service selection application118. If embodied in software, each block may represent a module,segment, or portion of code that comprises program instructions toimplement the specified logical function(s). The program instructionsmay be embodied in the form of source code that comprises human-readablestatements written in a programming language or machine code thatcomprises numerical instructions recognizable by a suitable executionsystem such as a processor 603 in a computer system or other system. Themachine code may be converted from the source code, etc. If embodied inhardware, each block may represent a circuit or a number ofinterconnected circuits to implement the specified logical function(s).

Although the flowchart of FIG. 5 shows a specific order of execution, itis understood that the order of execution may differ from that which isdepicted. For example, the order of execution of two or more blocks maybe scrambled relative to the order shown. Also, two or more blocks shownin succession in FIG. 5 may be executed concurrently or with partialconcurrence. Further, in some embodiments, one or more of the blocksshown in FIG. 5 may be skipped or omitted. In addition, any number ofcounters, state variables, warning semaphores, or messages might beadded to the logical flow described herein, for purposes of enhancedutility, accounting, performance measurement, or providingtroubleshooting aids, etc. It is understood that all such variations arewithin the scope of the present disclosure.

Also, any logic or application described herein, including theelectronic commerce system 115 and the wireless service selectionapplication 118, that comprises software or code can be embodied in anynon-transitory computer-readable medium for use by or in connection withan instruction execution system such as, for example, a processor 603 ina computer system or other system. In this sense, the logic maycomprise, for example, statements including instructions anddeclarations that can be fetched from the computer-readable medium andexecuted by the instruction execution system. In the context of thepresent disclosure, a “computer-readable medium” can be any medium thatcan contain, store, or maintain the logic or application describedherein for use by or in connection with the instruction executionsystem. The computer-readable medium can comprise any one of manyphysical media such as, for example, electronic, magnetic, optical,electromagnetic, infrared, or semiconductor media. More specificexamples of a suitable computer-readable medium would include, but arenot limited to, magnetic tapes, magnetic floppy diskettes, magnetic harddrives, memory cards, solid-state drives, USB flash drives, or opticaldiscs. Also, the computer-readable medium may be a random access memory(RAM) including, for example, static random access memory (SRAM) anddynamic random access memory (DRAM), or magnetic random access memory(MRAM). In addition, the computer-readable medium may be a read-onlymemory (ROM), a programmable read-only memory (PROM), an erasableprogrammable read-only memory (EPROM), an electrically erasableprogrammable read-only memory (EEPROM), or other type of memory device.

It should be emphasized that the above-described embodiments of thepresent disclosure are merely possible examples of implementations setforth for a clear understanding of the principles of the disclosure.Many variations and modifications may be made to the above-describedembodiment(s) without departing substantially from the spirit andprinciples of the disclosure. All such modifications and variations areintended to be included herein within the scope of this disclosure andprotected by the following claims.

Therefore, the following is claimed:
 1. A non-transitorycomputer-readable medium embodying a program executable in a firstcomputing device, wherein, when executed, the program causes the firstcomputing device to at least: receive a geographic location, anidentifier of a current wireless service plan, a plurality of wirelessdevice preferences, and a plurality of wireless service preferences froma second computing device; determine a plurality of wireless serviceplans that meet the plurality of wireless service preferences and areoffered by a plurality of wireless carriers that provide service to thegeographic location; determine a plurality of wireless devices that meetthe plurality of wireless device preferences; and rank a set of wirelesspackages according to at least a measure of similarity of respectivefeature sets of a plurality of feature sets associated with the currentwireless service plan and respective feature sets of the plurality offeature sets associated with at least one of the plurality of wirelessservice plans, the set of wireless packages comprising the plurality ofwireless service plans respectively paired with compatible wirelessdevices of the plurality of wireless devices.
 2. The non-transitorycomputer-readable medium of claim 1, wherein, when executed, the programfurther causes the first computing device to at least: receive aselection of at least one of the set of wireless packages; and place anorder for a selected wireless package of the set of wireless packagesfrom at least one of the plurality of wireless carriers offering theselection of the at least one of the set of wireless packages.
 3. Thenon-transitory computer-readable medium of claim 1, wherein, whenexecuted, the program further causes the first computing device to atleast: identify a similar set of wireless packages that are similar toat least one of the set of wireless packages; and generate a networkpage presenting the set of wireless packages and the similar set ofwireless packages in a ranked order that is based at least in part on atleast one of the plurality of wireless service preferences, theplurality of wireless device preferences, and a frequency of customerselection of a respective wireless package of the set of wirelesspackages.
 4. A system, comprising: a data store configured to store dataregarding a plurality of geographic location preferences; and acomputing device in communication with the data store, the computingdevice configured to at least: receive a geographic location and aplurality of wireless preferences, the plurality of wireless preferencesincluding a wireless device preference and a wireless servicepreference; determine a plurality of wireless service plans that meetthe wireless service preference and are offered by a plurality ofwireless carriers that provide service to the geographic location; andgenerate a network page presenting the plurality of wireless serviceplans in a ranked order according to at least a similarity between arespective feature set of a plurality of feature sets and the wirelessservice preference, wherein the respective one of the plurality offeature sets corresponds to at least one of the plurality of wirelessservice plans.
 5. The system of claim 4, wherein the ranked order isaccording to at least historical customer experience data associatedwith the plurality of wireless service plans.
 6. The system of claim 4,wherein the ranked order is according to at least wireless service planselection data that describes a frequency of customer selection of atleast one of the plurality of wireless service plans.
 7. The system ofclaim 6, wherein the network page includes the frequency of customerselection in association with the at least one of the plurality ofwireless service plans.
 8. The system of claim 4, wherein: the wirelessservice preference comprises a plurality of wireless servicepreferences; at least a subset of the plurality of wireless servicepreferences are optional; and the ranked order is based at least in parton a number of the plurality of wireless service preferences in thesubset that are met by at least one of the plurality of wireless serviceplans.
 9. The system of claim 4, wherein the plurality of wirelesspreferences are associated with a plurality of corresponding weights,and the ranked order is based at least in part on the plurality ofcorresponding weights.
 10. The system of claim 9, wherein at least oneof the plurality of corresponding weights is received from anothercomputing device.
 11. The system of claim 9, wherein at least one of theplurality of corresponding weights is predetermined.
 12. The system ofclaim 4, wherein the plurality of wireless service plans are presentedin the network page in association with at least one wireless devicethat is compatible with at least one of the plurality of wirelessservice plans and meets the plurality of wireless preferences.
 13. Thesystem of claim 4, wherein the wireless device preference specifies adesired feature set and a desired price range for a wireless device. 14.The system of claim 4, wherein the wireless service preference specifiesa desired feature set and a desired price range for a wireless serviceplan.
 15. The system of claim 4, wherein generating the network pagepresenting the plurality of wireless service plans further comprisesexcluding any of the plurality of wireless service plans that areincompatible with the wireless device preference.
 16. Acomputer-implemented method, comprising: receiving, in at least onecomputing device, a geographic location, a plurality of wirelesspreferences, the plurality of wireless preferences including at least awireless device preference and a wireless service preference, and anidentification of a current wireless service plan; determining, in theat least one computing device, a plurality of wireless devices that areassociated with at least: at least one of the plurality of wirelesspreferences, at least one of a plurality of wireless service plans thatmeet the plurality of wireless preferences, and a plurality of wirelesscarriers associated with the geographic location; and generating, in theat least one computing device, a network page presenting the pluralityof wireless devices in association with at least a respective wirelessservice plan of the plurality of wireless service plans, the pluralityof wireless devices being ranked according to a score determined atleast in part from the plurality of wireless preferences and respectivecustomer selection frequencies of a plurality of customer selectionfrequencies of the plurality of wireless devices.
 17. Thecomputer-implemented method of claim 16, wherein the plurality ofwireless preferences are associated with a plurality of correspondingweights, and the plurality of wireless preferences are weighted by theplurality of corresponding weights in determining the score.
 18. Thecomputer-implemented method of claim 16, wherein: the wireless devicepreference comprises a plurality of wireless device preferences; atleast a subset of the plurality of wireless device preferences areoptional; and ranking the plurality of wireless devices is based atleast in part on a number of the subset of the plurality of wirelessdevice preferences that are met by respective wireless devices of theplurality of wireless devices.
 19. The computer-implemented method ofclaim 16, wherein a match between a respective wireless device of theplurality of wireless devices with a corresponding wireless service planof the plurality of wireless service plans comprises a wireless package.20. The computer-implemented method of claim 16, wherein the wirelessdevice preference comprises a desired price range for a wireless device.